package cl.ceis.demo5;

import android.content.Context;
import android.graphics.Bitmap;
import android.opengl.GLSurfaceView;
import android.util.Log;
import android.view.MotionEvent;

public class LienzoGL extends GLSurfaceView {

	private RendererGL renderer;

	public LienzoGL(Context context) {
		super(context);

//	    setDebugFlags(DEBUG_CHECK_GL_ERROR | DEBUG_LOG_GL_CALLS);

		//Crea nuevo renderer y se agrega a la vista
		renderer = new RendererGL();
		setRenderer(renderer);
		setRenderMode(RENDERMODE_WHEN_DIRTY); //Evita que se actualize la superficie automaticamente, solo se dibujara cuando se llame a requestRender()
	}

	@Override
	public boolean onTouchEvent(final MotionEvent event) {
		
		Log.d("coordenada_pixel", event.getX()  + ", " + event.getY());
		//Crea un nuevo hilo para enviarle al renderer el nuevo punto
		queueEvent(new Runnable(){
			public void run() {
				renderer.setCoordenadas(event.getX(), event.getY());
			}});
		//Luego de enviar las nuevas coordenadas para el nuevo punto, pide al renderer que dibuje el nuevo punto
		requestRender();
		return true;
	}
	
	public void loadBitmap(Bitmap bitmap){
		//Carga el bitmap al renderer para luego ser cargado como textura
		renderer.loadBitmap(bitmap);
	}

	public void setColor(float[] argb) {
		renderer.setColor(argb);
		
	}

	public void setPointSize(int pointSize) {
		renderer.setPointSize(pointSize);
		
	}

}
